package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_PLANILLA_CELULAR {

    private int ID;
    private int ID_TELEFONO;
    private int CI;
    private int ANO;
    private int MES;
    private int ESTADO;
    private double DESCUENTO;
    private double MONTO_FACTURADO;
    private Conexion con = null;

    public RHH_PLANILLA_CELULAR(Conexion con) {
        this.con = con;
    }

    public RHH_PLANILLA_CELULAR(int ID, int ID_TELEFONO, int CI, int ANO, int MES, double DESCUENTO, double MONTO_FACTURADO) {
        this.ID = ID;
        this.ID_TELEFONO = ID_TELEFONO;
        this.CI = CI;
        this.ANO = ANO;
        this.MES = MES;
        this.DESCUENTO = DESCUENTO;
        this.MONTO_FACTURADO = MONTO_FACTURADO;
    }

    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_PLANILLA_CELULAR (ID, ID_TELEFONO, CI, ANO, MES, DESCUENTO, MONTO_FACTURADO) VALUES (" + ID + "," + ID_TELEFONO + "," + CI + "," + ANO + "," + MES + "," + DESCUENTO + "," + MONTO_FACTURADO + ")";
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.RHH_PLANILLA_CELULAR_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }
    
    public void pagar(int ano, int mes) throws SQLException
    {
        String consulta = "update BROKER.RHH_PLANILLA_CELULAR  set ESTADO = 0 where ANO= " + ano+" and MES = "+mes;
        con.EjecutarSentencia(consulta);
    }
    

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_PLANILLA_CELULAR where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
    public boolean EliminarXanoYmes(int ano, int mes) throws SQLException {
        String consulta = "delete from BROKER.RHH_PLANILLA_CELULAR where ANO="+ano+" and MES = "+mes;
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_PLANILLA_CELULAR> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_PLANILLA_CELULAR";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PLANILLA_CELULAR> lista = Cargar(rs);
        return lista;
    }
    
    public Double DescuentoUsrXanoYmes(int ano, int mes, int ci) throws SQLException {
        String consulta = "select * from BROKER.RHH_PLANILLA_CELULAR where ANO = "+ano+" and MES = "+mes+" and CI ="+ci;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PLANILLA_CELULAR> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0).getDESCUENTO();
        else
            return 0.0;
    }
    public List<RHH_PLANILLA_CELULAR> TodosXanoYmes(int ano, int mes) throws SQLException {
        String consulta = "select * from BROKER.RHH_PLANILLA_CELULAR where ANO = "+ano+" and MES = "+mes;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PLANILLA_CELULAR> lista = Cargar(rs);
        return lista;
    }

    public List<RHH_PLANILLA_CELULAR> Cargar(ResultSet rs) throws SQLException {
        List<RHH_PLANILLA_CELULAR> lista = new ArrayList<RHH_PLANILLA_CELULAR>();
        while (rs.next()) {
            RHH_PLANILLA_CELULAR objeto = new RHH_PLANILLA_CELULAR(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setID_TELEFONO(rs.getInt("ID_TELEFONO"));
            objeto.setCI(rs.getInt("CI"));
            objeto.setANO(rs.getInt("ANO"));
            objeto.setMES(rs.getInt("MES"));
            objeto.setESTADO(rs.getInt("ESTADO"));
            objeto.setDESCUENTO(rs.getDouble("DESCUENTO"));
            objeto.setMONTO_FACTURADO(rs.getDouble("MONTO_FACTURADO"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getESTADO() {
        return ESTADO;
    }

    public void setESTADO(int ESTADO) {
        this.ESTADO = ESTADO;
    }   
    
    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getID_TELEFONO() {
        return ID_TELEFONO;
    }

    public void setID_TELEFONO(int ID_TELEFONO) {
        this.ID_TELEFONO = ID_TELEFONO;
    }

    public int getCI() {
        return CI;
    }

    public void setCI(int CI) {
        this.CI = CI;
    }

    public int getANO() {
        return ANO;
    }

    public void setANO(int ANO) {
        this.ANO = ANO;
    }

    public int getMES() {
        return MES;
    }

    public void setMES(int MES) {
        this.MES = MES;
    }

    public double getDESCUENTO() {
        return DESCUENTO;
    }

    public void setDESCUENTO(double DESCUENTO) {
        this.DESCUENTO = DESCUENTO;
    }

    public double getMONTO_FACTURADO() {
        return MONTO_FACTURADO;
    }

    public void setMONTO_FACTURADO(double MONTO_FACTURADO) {
        this.MONTO_FACTURADO = MONTO_FACTURADO;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
